/**
 * 构建一个 HTTP 服务
 * GET   /index.html   响应 ./static/index.html 文件内容
 * GET   /css/app.css  响应  ./static/css/app.css 文件内容
 * GET   /js/app.js    响应  ./static/js/app.js  文件内容
 * GET   /img/logo.png 响应  ./static/img/logo.png 文件内容
 *      其他            响应 「404 Not Found」
 */
const http = require('http');
const urlTool = require('url');
const fs = require('fs');

//创建服务对象
const server = http.createServer((req, res) => {
  //设置字符集的响应头                          「=」的左右两侧不能加空格
  // res.setHeader('content-type','text/html;charset=utf-8');
  //获取请求的方法和路径
  let {url, method} = req;// req.method  req.url  {method: 'xxx', url: 'xxx'}
  //转换
  method = method.toUpperCase();
  //获取路径
  let {pathname} = urlTool.parse(url);

  //判断  如果路径为 /index.html 或 / 则响应 index.html 的文件内容
  if(method === 'GET' && pathname === '/index.html' || pathname === '/'){
    res.setHeader('content-type','text/html;chatset=utf-8');
    //获取 static/index.html 的文件内容
    let content = fs.readFileSync('./static/index.html');
    res.end(content);
  }else if(method === 'GET' && pathname === '/css/app.css'){
    //设置 css 响应头
    res.setHeader('content-type','text/css;chatset=utf-8');
    //获取 static/css/app.css 的文件内容
    let content = fs.readFileSync('./static/css/app.css');
    res.end(content);
  }else if(method === 'GET' && pathname === '/js/app.js'){
    //设置 js 响应头
    res.setHeader('content-type','application/javascript;charset=utf-8');
    //获取 static/js/app.js 的文件内容
    let content = fs.readFileSync('./static/js/app.js');
    res.end(content);
  }else if(method === 'GET' && pathname === '/img/logo.png'){
    //设置图片的响应头
    res.setHeader('content-type','image/png');// 这里不需要加字符集
    //获取 static/img/logo.png 的文件内容
    let content = fs.readFileSync('./static/img/logo.png');
    res.end(content);
  }else if(method === 'GET' && pathname === '/css/home.css'){
    //设置 css 响应头
    res.setHeader('content-type','text/css;chatset=utf-8');
    //获取 static/css/app.css 的文件内容
    let content = fs.readFileSync('./static/css/home.css');
    res.end(content);
  }else{
    res.end('404 Not Found');
  }
});

//监听端口, 启动服务
server.listen(3000, () => {
  console.log('服务已经启动, 端口 3000 监听中....');
});